1   /*
2    * Scope: a generic MVC framework.
3    * Copyright (c) 2000-2002, The Scope team
4    * All rights reserved.
5    *
6    *
7    * Redistribution and use in source and binary forms, with or without
8    * modification, are permitted provided that the following conditions
9    * are met:
10   *
11   * Redistributions of source code must retain the above copyright
12   * notice, this list of conditions and the following disclaimer.
13   *
14   * Redistributions in binary form must reproduce the above copyright
15   * notice, this list of conditions and the following disclaimer in the
16   * documentation and/or other materials provided with the distribution.
17   *
18   * Neither the name "Scope" nor the names of its contributors
19   * may be used to endorse or promote products derived from this software
20   * without specific prior written permission.
21   *
22   *
23   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26   * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
27   * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30   * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31   * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34   *
35   *
36   * $Id: DateTimeStringConvertor.java,v 1.5 2002/09/05 15:41:46 ludovicc Exp $
37   */
38  package org.scopemvc.util.convertor;
39  
40  import java.io.Serializable;
41  
42  import java.text.DateFormat;
43  import java.text.ParseException;
44  
45  /***
46   * String convertor for type {@link org.scopemvc.util.DateTime} or <code>java.util.Date</code>
47   * . Both date and time parts of <code>Date</code> instances are used. <p>
48   *
49   * It uses one <code>java.text.DateFormat DateFormat</code> for converting into
50   * <code>String</code> and an array of <code>DateFormat</code>s for parsing.
51   * Parsing formats are successively used to try to parse until one is
52   * successful. </p> <p>
53   *
54   * Formats are picked up from config (see {@link
55   * org.scopemvc.util.DefaultScopeConfig} for details) or if none in config, the
56   * default formatter is: <pre>
57   * DateFormat.getDateTimeInstance()
58   * </pre> and default parsers are: <pre>
59   * DateFormat.getDateTimeInstance((FULL|LONG|MEDIUM|SHORT),
60   *                                      (FULL|LONG|MEDIUM|SHORT));
61   * </pre> <i>Note:</i> the default parsing set is initialized during class
62   * loading and based on default platform locale. If application uses other
63   * locales, there will be need to set parsing objects explicitly.
64   *
65   * @author <A HREF="mailto:danmi@users.sourceforge.net">Daniel Michalik</A>
66   * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
67   * @created 05 September 2002
68   * @version $Revision: 1.5 $ $Date: 2002/09/05 15:41:46 $
69   * @see DateStringConvertor
70   * @see TimeStringConvertor
71   */
72  public class DateTimeStringConvertor extends DateStringConvertor {
73  
74      // ------------- Defaults if no config specified ----------------
75      private final static DateFormat defaultParsers[] = new DateFormat[16];
76      static {
77          defaultParsers[15] = DateFormat.getDateTimeInstance(
78                  DateFormat.SHORT, DateFormat.SHORT);
79          defaultParsers[14] = DateFormat.getDateTimeInstance(
80                  DateFormat.SHORT, DateFormat.MEDIUM);
81          defaultParsers[13] = DateFormat.getDateTimeInstance(
82                  DateFormat.SHORT, DateFormat.LONG);
83          defaultParsers[12] = DateFormat.getDateTimeInstance(
84                  DateFormat.SHORT, DateFormat.FULL);
85  
86          defaultParsers[11] = DateFormat.getDateTimeInstance(
87                  DateFormat.MEDIUM, DateFormat.SHORT);
88          defaultParsers[10] = DateFormat.getDateTimeInstance(
89                  DateFormat.MEDIUM, DateFormat.MEDIUM);
90          defaultParsers[9] = DateFormat.getDateTimeInstance(
91                  DateFormat.MEDIUM, DateFormat.LONG);
92          defaultParsers[8] = DateFormat.getDateTimeInstance(
93                  DateFormat.MEDIUM, DateFormat.FULL);
94  
95          defaultParsers[7] = DateFormat.getDateTimeInstance(
96                  DateFormat.LONG, DateFormat.SHORT);
97          defaultParsers[6] = DateFormat.getDateTimeInstance(
98                  DateFormat.LONG, DateFormat.MEDIUM);
99          defaultParsers[5] = DateFormat.getDateTimeInstance(
100                 DateFormat.LONG, DateFormat.LONG);
101         defaultParsers[4] = DateFormat.getDateTimeInstance(
102                 DateFormat.LONG, DateFormat.FULL);
103 
104         defaultParsers[3] = DateFormat.getDateTimeInstance(
105                 DateFormat.FULL, DateFormat.SHORT);
106         defaultParsers[2] = DateFormat.getDateTimeInstance(
107                 DateFormat.FULL, DateFormat.MEDIUM);
108         defaultParsers[1] = DateFormat.getDateTimeInstance(
109                 DateFormat.FULL, DateFormat.LONG);
110         defaultParsers[0] = DateFormat.getDateTimeInstance(
111                 DateFormat.FULL, DateFormat.FULL);
112     }
113 
114     // ------------------------------------------------------------------
115 
116     /***
117      * Creates new TimeStringConvertor. If formats and parsers are specified in
118      * config then use those else use current locale default format and platform
119      * locale default parsers.
120      */
121     public DateTimeStringConvertor() {
122         super();
123     }
124 
125 
126     /***
127      * Creates new DateTimeStringConvertor with specified formatter and parsers.
128      *
129      * @param inFormatter TODO: Describe the Parameter
130      * @param inParsers TODO: Describe the Parameter
131      */
132     public DateTimeStringConvertor(DateFormat inFormatter, DateFormat inParsers[]) {
133         super(inFormatter, inParsers);
134     }
135 
136 
137     /***
138      * Gets the default parsers
139      *
140      * @return The defaultParsers value
141      */
142     protected DateFormat[] getDefaultParsers() {
143         return DateTimeStringConvertor.defaultParsers;
144     }
145 }
146 
This page was automatically generated by Maven